#!/bin/bash

echo "🚀 启动 .NET 8 微服务项目..."

# 检查Docker是否运行
if ! docker info > /dev/null 2>&1; then
    echo "❌ Docker未运行，请先启动Docker Desktop"
    exit 1
fi

# 检查Docker Compose是否可用
if ! command -v docker-compose &> /dev/null; then
    echo "❌ Docker Compose未安装"
    exit 1
fi

# 数据库选择
echo "📊 请选择要使用的数据库:"
echo "1) PostgreSQL (默认)"
echo "2) MySQL"
echo "3) SQL Server"
echo "4) Oracle"
echo "5) SQLite"
echo "6) 全部启动 (所有数据库)"

read -p "请输入选择 (1-6): " db_choice

case $db_choice in
    1)
        echo "🐘 使用 PostgreSQL 数据库"
        export DB_TYPE=PostgreSQL
        ;;
    2)
        echo "🐬 使用 MySQL 数据库"
        export DB_TYPE=MySQL
        ;;
    3)
        echo "🗄️ 使用 SQL Server 数据库"
        export DB_TYPE=SqlServer
        ;;
    4)
        echo "🔶 使用 Oracle 数据库"
        export DB_TYPE=Oracle
        ;;
    5)
        echo "📱 使用 SQLite 数据库"
        export DB_TYPE=SQLite
        ;;
    6)
        echo "🌐 启动所有数据库"
        export DB_TYPE=All
        ;;
    *)
        echo "🐘 使用默认 PostgreSQL 数据库"
        export DB_TYPE=PostgreSQL
        ;;
esac

echo "📦 构建并启动所有服务..."
docker-compose up -d --build

echo "⏳ 等待服务启动..."
sleep 30

echo "🔍 检查服务状态..."
docker-compose ps

echo "✅ 服务启动完成！"
echo ""
echo "🌐 访问地址："
echo "   API网关: http://localhost:5000"
echo "   Consul UI: http://localhost:8500"
echo "   Grafana: http://localhost:3000 (admin/admin)"
echo "   Prometheus: http://localhost:9090"
echo "   Kibana: http://localhost:5601"
echo "   RabbitMQ管理: http://localhost:15672 (admin/admin)"
echo ""
echo "🗄️ 数据库连接信息："
echo "   PostgreSQL: localhost:5432 (postgres/password)"
echo "   MySQL: localhost:3306 (root/password)"
echo "   SQL Server: localhost:1433 (sa/YourStrong@Passw0rd)"
echo "   Oracle: localhost:1521 (system/password)"
echo ""
echo "📝 查看日志："
echo "   docker-compose logs -f [服务名]"
echo ""
echo "🛑 停止服务："
echo "   docker-compose down"
echo ""
echo "🔧 切换数据库："
echo "   重新运行 ./start.sh 并选择不同的数据库" 